/*
 * RemoteOperations.java
 *
 * Created on 4 de Fevereiro de 2007, 19:03
 */

package cefetpb.pod.agenda.remote;

import java.util.List;
import java.rmi.Remote;
import java.rmi.RemoteException;
import cefetpb.pod.agenda.tol.Usuario;
import cefetpb.pod.agenda.tol.Contato;

/**
 *
 * @author Rosberg
 * @author Deijiane
 */
public interface RmiMessenger extends Remote {
    
    public void criarUsuario(Usuario usr) throws UserAlreadyExistException, RemoteException;
    public void efetuarLogin(Usuario usr) throws AuthenticationException, UserAlreadyLoggedException, RemoteException;
    public void efetuarLogout(Usuario usr) throws RemoteException;
    public void adicionarContato(Usuario usr, Contato c) throws UserNotFoundException, ContactAlredyExistException, RemoteException;
    public void removerContato(Usuario usr, Contato c) throws UserNotFoundException, ContactNotFoundException, RemoteException;
    public void limparAgenda(Usuario usr) throws UserNotFoundException, RemoteException;
    public List<String> listarNomeContatos(Usuario usr) throws UserNotFoundException, RemoteException;
    public Contato consultarContatoPorNome(Usuario usr, String nomeContato) throws UserNotFoundException, RemoteException;
    public List<String> consultarContatoPorParteDoNome(Usuario usr, String nome) throws UserNotFoundException, RemoteException;
    public String consultarContatoPorCPF(Usuario usr, String cpf) throws UserNotFoundException, RemoteException;
}